1. Technical Field
This invention relates to the field of device commanding and more particularly to an extensible device command commutation engine.
2. Description of the Related Art
Device commanding systems can be used to control devices, for example specialized test equipment or software and hardware simulators. In the field of satellite command and control, device commanding systems can be used to command a satellite or satellite subsystems contained within the satellite, or ground equipment in the communication path between the satellite and the commanding system. In general, however, a commanding system can command any device controllable by formatted commands communicated by the commanding system to the target device.
A prototypical device commanding system generally can include a selection of commands for controlling the target device. In addition, the prototypical device commanding system can include a command formatting engine for appropriately formatting a chosen command with selected parameters in order to provide to the target device a valid command in a valid format. Finally, the prototypical device commanding system can include a command transmission module for physically transmitting formatted commands to the target device and for ensuring the receipt and acknowledgment by the target device of the formatted commands.
Presently, device commanding systems can process proprietary commanding languages. Using the proprietary commanding language, a user of a device commanding system can control a target device without learning the complexities of the internal command structure of the target device. Specifically, the commanding system can convert a selected command formed using the proprietary commanding language into a command recognizable by the target device. Depending upon the target device, each recognizable command can include a variety of operational parameters.
Still, there exist fundamental problems with present device commanding systems. In particular, because each recognizable command can include a variety of operational parameters having a multiplicity of possible data types and functions, present device commanding systems can be difficult and costly to enhance with additional data types or commands without substantially changing the software architecture of the command database and the command commutation engine. In particular, the commanding code of present device commanding systems can be completely accessible by the applications developer. Furthermore, current device commanding systems can include complex internal functions and data structures. As a result, to extend the functionality of present device commanding engines, an application developer need substantially modify the internal structure and data structures of both the command database and command commutation engine.